#C 语言标准库头文件 stdlib.h
这个头文件提供 常用的基本功能。例如内存管理,程序终止等。
#示例
#include <stdio.h>
#include <stdlib.h> // 包含stdlib.h头文件
#include <time.h> // 用于time()函数
// 定义比较函数
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main(void) {
// 1. 内存分配示例
printf("=== 内存分配示例 ===\n");
int *arr = (int*)malloc(5 * sizeof(int)); // 分配5个int大小的内存
if (arr == NULL) {
printf("内存分配失败!\n");
return 1;
} else {
printf("内存分配成功!\n");
}
// 2. 随机数生成示例
printf("\n=== 随机数生成示例 ===\n");
srand(time(0)); // 用当前时间初始化随机数种子
printf("随机数[0,99]: %d\n", rand() % 100);
// 3. 字符串转换示例
printf("\n=== 字符串转换示例 ===\n");
char num_str[] = "12345";
int num = atoi(num_str); // 字符串转整数
printf("字符串\"%s\"转换为整数: %d\n", num_str, num);
// 4. 环境变量示例
printf("\n=== 环境变量示例 ===\n");
char *path = getenv("PATH"); // 获取PATH环境变量
if (path != NULL) {
printf("PATH环境变量: %s\n", path);
} else {
printf("PATH环境变量未找到\n");
}
// 5. 排序示例 (qsort)
printf("\n=== 排序示例 ===\n");
for (int i = 0; i < 5; i++) {
arr[i] = rand() % 100; // 给数组赋随机值
printf("arr[%d] = %d\n", i, arr[i]);
}
qsort(arr, 5, sizeof(int), compare); // 排序数组
printf("排序后:\n");
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
// 6. 退出程序
free(arr); // 释放分配的内存
printf("\n程序正常退出\n");
exit(EXIT_SUCCESS); // 等同于return 0
}
运行结果:
=== 内存分配示例 === 内存分配成功! === 随机数生成示例 === 随机数[0,99]: 92 === 字符串转换示例 === 字符串"12345"转换为整数: 12345 === 环境变量示例 === PATH环境变量: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin === 排序示例 === arr[0] = 74 arr[1] = 0 arr[2] = 64 arr[3] = 73 arr[4] = 28 排序后: arr[0] = 0 arr[1] = 28 arr[2] = 64 arr[3] = 73 arr[4] = 74 程序正常退出
#常量
常量 | 标准 | 说明 |
---|---|---|
EXIT_SUCCESS | C89 | 表示程序正确执行,通常为 0 |
EXIT_FAILURE | C89 | 表示程序执行失败,通常为 1 |
#函数
函数 | 标准 | 说明 |
---|---|---|
abort | C89 | 异常中止 |
exit | C89 | 正常退出 |
atexit | C89 | 注册 exit 退出前调用的函数 |
_Exit | C99 | 正常退出 |
quick_exit | C11 | 快速退出 |
at_quick_exit | C11 | 注册 quick_exit 退出前调用的函数 |